home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Atari Compendium
/
The Atari Compendium (Toad Computers) (1994).iso
/
files
/
umich
/
telecomm
/
zmdm.zoo
/
ymodem.doc
< prev
next >
Wrap
Text File
|
1991-04-27
|
63KB
|
1,681 lines
- 1 -
XMODEM/YMODEM PROTOCOL REFERENCE
A compendium of documents describing the
XMODEM and YMODEM
File Transfer Protocols
This document was formatted 9-11-86.
Edited by Chuck Forsberg
Please distribute as widely as possible.
Questions to Chuck Forsberg
Omen Technology Inc
17505-V Sauvie Island Road
Portland Oregon 97231
Voice: 503-621-3406
Modem (Telegodzilla): 503-621-3746 Speed 1200,300
Compuserve: 70007,2304
UUCP: ...!tektronix!reed!omen!caf
- 2 -
1. ROSETTA STONE
Here are some definitions which reflect the current vernacular
in the computer media. The attempt here is identify the file
transfer protocol rather than specific programs.
XMODEM refers to the original 1979 file transfer etiquette
introduced by Ward Christensen's 1979 MODEM2 program. It's also
called the MODEM or MODEM2 protocol. Some who are unaware of MODEM7's
unusual batch file mode call it MODEM7. Other aliases include "CP/M
Users's Group" and "TERM II FTP 3". This protocol is supported by
every serious communications program because of its universality,
simplicity, and reasonable performance.
XMODEM/CRC replaces XMODEM's 1 byte checksum with a two byte Cyclical
Redundancy Check (CRC-16), giving modern error detection
protection.
XMODEM-1k Refers to the XMODEM/CRC protocol with 1024 byte data blocks.
YMODEM refers to the XMODEM/CRC (optional 1k blocks) protocol with the
batch transmission described below.
ZMODEM uses familiar XMODEM/CRC and YMODEM technology in a
new protocol that provides reliability, throughput, file
management, and user amenities appropriate to contemporary
data communications.
2. YET ANOTHER PROTOCOL?
Since its development half a decade ago, the Ward Christensen modem
protocol has enabled a wide variety of computer systems to interchange
data. There is hardly a communications program that doesn't at least
claim to support this protocol.
Recent advances in computing, modems and networking have
revealed a number of weaknesses in the original protocol:
+ The short block length caused throughput to suffer when used with
timesharing systems, packet switched networks, satellite circuits,
and buffered (error correcting) modems.
+ The 8 bit arithmetic checksum and other aspects allowed line
impairments to interfere with dependable, accurate transfers.
+ Only one file could be sent per command. The file name had to be
given twice, first to the sending program and then again to the
receiving program.
+ The transmitted file could accumulate as many as 127 extraneous
bytes.
Chapter 2
X/YMODEM Protocol Reference 09-11-86 3
+ The modification date of the file was lost.
A number of other protocols have been developed over the
years, but none have displaced XMODEM to date:
+ Lack of public domain documentation and example programs have kept
proprietary protocols such as MNP, Blast, and others
tightly bound to the fortunes of their suppliers.
+ Complexity discourages the widespread application of BISYNC, SDLC,
HDLC, X.25, and X.PC protocols.
+ Performance compromises and moderate complexity have limited the
popularity of the Kermit protocol, which was developed to allow file
transfers in environments hostile to XMODEM.
The XMODEM protocol extensions and YMODEM Batch address these
weaknesses while maintaining XMODEM's simplicity.
YMODEM is supported by the public domain programs YAM (CP/M),
YAM(CP/M-86), YAM(CCPM-86), IMP (CP/M), KMD (CP/M), rz/sz (Unix, Xenix,
VMS, Berkeley Unix, Venix, Xenix, Coherent, IDRIS, Regulus). Commerical
implementations include MIRROR, and Professional-YAM.[1] Communications
programs supporting these extensions have been in use since 1981.
The 1k packet length (XMODEM-1k) described below may be used in
conjunction with YMODEM Batch Protocol, or with single file transfers
identical to the XMODEM/CRC protocol except for minimal
changes to support 1k packets.
Another extension is simply called the g option. It provides maximum
throughput when used with end to end error correcting media,
such as X.PC and error correcting modems, including the emerging
9600 bps units by Electronic Vaults and others.
To complete this tome, Ward Christensen's original protocol document and
John Byrns's CRC-16 document are included for reference.
References to the MODEM or MODEM7 protocol have been changed
to XMODEM to accommodate the vernacular. In Australia, it is
properly called the Christensen Protocol.
__________
1. Available for IBM PC,XT,AT, Unix and Xenix
Chapter 2
X/YMODEM Protocol Reference 09-11-86 4
2.1 Some Messages from the Pioneer
#: 130940 S0/Communications 25-Apr-85 18:38:47
Sb: my protocol
Fm: Ward Christensen 76703,302 (EDITED)
To: all
Be aware the article[2] DID quote me correctly in terms of the
phrases like "not robust", etc.
It was a quick hack I threw together, very unplanned (like
everything I do), to satisfy a personal need to communicate with
"some other" people.
ONLY the fact that it was done in 8/77, and that I put it in the public
domain immediately, made it become the standard that it is.
I think its time for me to
(1) document it; (people call me and say "my product is going
to include it - what can I 'reference'", or "I'm writing a
paper on it, what do I put in the bibliography") and
(2) propose an "incremental extension" to it, which might take
"exactly" the form of Chuck Forsberg's YAM protocol. He
wrote YAM in C for CP/M and put it in the public domain,
and wrote a batch protocol for Unix[3] called rb and sb
(receive batch, send batch), which was basically XMODEM with
(a) a record 0 containing filename date time and size
(b) a 1K block size option
(c) CRC-16.
He did some clever programming to detect false ACK or EOT, but basically
left them the same.
People who suggest I make SIGNIFICANT changes to the protocol,
such as "full duplex", "multiple outstanding blocks", "multiple
destinations", etc etc don't understand that the incredible
simplicity of the protocol is one of the reasons it survived to
this day in as many machines and programs as it may be found in!
Consider the PC-NET group back in '77 or so - documenting to
beat the band